<html>
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"/>
  <title>
   谢益辉: Sweave后传：统计报告中的大规模计算与缓存  | 数螺 | NAUT IDEA
  </title>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" rel="stylesheet"/>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
  <style type="text/css">
   #xmain img {
                  max-width: 100%;
                  display: block;
                  margin-top: 10px;
                  margin-bottom: 10px;
                }

                #xmain p {
                    line-height:150%;
                    font-size: 16px;
                    margin-top: 20px;
                }

                #xmain h2 {
                    font-size: 24px;
                }

                #xmain h3 {
                    font-size: 20px;
                }

                #xmain h4 {
                    font-size: 18px;
                }


                .header {
	           background-color: #0099ff;
	           color: #ffffff;
	           margin-bottom: 20px;
	        }

	        .header p {
                  margin: 0px;
                  padding: 10px 0;
                  display: inline-block;  
                  vertical-align: middle;
                  font-size: 16px;
               }

               .header a {
                 color: white;
               }

              .header img {
                 height: 25px;
              }
  </style>
  <script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">
  </script>
  <script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript">
   MathJax.Hub.Config({
          tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]},
          TeX: {equationNumbers: {autoNumber: "AMS"}}
        });
  </script>
  <script src="http://nautstatic-10007657.file.myqcloud.com/static/css/readability.min.js" type="text/javascript">
  </script>
  <script type="text/javascript">
   $(document).ready(function() {
                 var loc = document.location;
                 var uri = {
                  spec: "http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/",
                  host: "http://cos.name",
                  prePath: "http://cos.name",
                  scheme: "http",
                  pathBase: "http://cos.name/"
                 };
    
                 var documentClone = document.cloneNode(true);
                 var article = new Readability(uri, documentClone).parse();
     
                 document.getElementById("xmain").innerHTML = article.content;
                });
  </script>
  <!-- 1466462662: Accept with keywords: (title(0.333333333333):报告,门户网站,统计学,计算,服务平台,中国, topn(0.5):统计图,抽样,代码段,统计学,R语言,分布,字体,图形,工具,前文,结果,可视化,计算,文章,文档,数据,正态分布,中文,随机数,对象,问题,细节,读者,分布图,编译,作图,正态,报告,作者,代码).-->
 </head>
 <body class="single single-post postid-2792 single-format-standard sidebar" onload="">
  <div class="header">
   <div class="container">
    <div class="row">
     <div class="col-xs-6 col-sm-6 text-left">
      <a href="/databee">
       <img src="http://nautidea-10007657.cos.myqcloud.com/logo_white.png"/>
      </a>
      <a href="/databee">
       <p>
        数螺
       </p>
      </a>
     </div>
     <div class="hidden-xs col-sm-6 text-right">
      <p>
       致力于数据科学的推广和知识传播
      </p>
     </div>
    </div>
   </div>
  </div>
  <div class="container text-center">
   <h1>
    谢益辉: Sweave后传：统计报告中的大规模计算与缓存
   </h1>
  </div>
  <div class="container" id="xmain">
   <div class="hfeed site" id="page">
    <header class="site-header" id="masthead" role="banner">
     <div id="cos-logo">
      <a href="http://cos.name/">
       <img src="http://cos.name/wp-content/themes/COS-kermesinus/images/headers/cos-logo.png"/>
      </a>
     </div>
     <div class="navbar" id="navbar">
      <nav class="navigation main-navigation" id="site-navigation" role="navigation">
       <h3 class="menu-toggle">
        菜单
       </h3>
       <a class="screen-reader-text skip-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#content" title="跳至内容">
        跳至内容
       </a>
       <div class="menu-%e6%88%91%e7%9a%84%e8%8f%9c%e5%8d%95-container">
        <ul class="nav-menu" id="menu-%e6%88%91%e7%9a%84%e8%8f%9c%e5%8d%95">
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-4746" id="menu-item-4746">
          <a href="http://cos.name">
           主页
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-8120" id="menu-item-8120">
          <a href="http://cos.name/cn">
           论坛
          </a>
          <ul class="sub-menu">
           <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8124" id="menu-item-8124">
            <a href="http://cos.name/cn/wp-login.php?action=register">
             论坛注册
            </a>
           </li>
           <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8125" id="menu-item-8125">
            <a href="http://cos.name/cn/wp-login.php">
             论坛登录
            </a>
           </li>
          </ul>
         </li>
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8110" id="menu-item-8110">
          <a href="http://cos.name/books/">
           图书资料
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8112" id="menu-item-8112">
          <a href="http://cos.name/videos">
           视频教程
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8333" id="menu-item-8333">
          <a href="http://cos.name/salon/">
           统计沙龙
          </a>
         </li>
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8111" id="menu-item-8111">
          <a href="http://cos.name/chinar/">
           R语言会议
          </a>
         </li>
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8109" id="menu-item-8109">
          <a href="http://cos.name/training/">
           讲座与培训
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8115" id="menu-item-8115">
          <a href="http://cos.name/cn/forum/comprehensive/job/">
           招聘信息
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-4780" id="menu-item-4780">
          <a href="http://cos.name/about">
           关于我们
          </a>
          <ul class="sub-menu">
           <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8113" id="menu-item-8113">
            <a href="http://cos.name/2008/11/how-to-work-with-cos/">
             加入我们
            </a>
           </li>
           <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8119" id="menu-item-8119">
            <a href="http://cos.name/donate/">
             赞助我们
            </a>
           </li>
           <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8114" id="menu-item-8114">
            <a href="http://cos.name/cn/forum/26">
             项目合作
            </a>
           </li>
          </ul>
         </li>
        </ul>
       </div>
       <form action="http://cos.name/" class="search-form" method="get" role="search">
        <label>
         <span class="screen-reader-text">
          搜索：
         </span>
        </label>
       </form>
      </nav>
      <!-- #site-navigation -->
     </div>
     <!-- #navbar -->
    </header>
    <!-- #masthead -->
    <div class="site-main" id="main">
     <div class="content-area" id="primary">
      <div class="site-content" id="content" role="main">
       <article class="post-2792 post type-post status-publish format-standard hentry category-optim-sim category-featured category-packages tag-cachesweave tag-gibbs tag-lyx tag-pgf tag-pgfsweave tag-r-language tag-sweave tag-tikz tag-tikzdevice tag-utf-8 tag-395 tag-362 tag-391 tag-396 tag-57 tag-310 tag-388 tag-393" id="post-2792">
        <header class="entry-header">
         <h1 class="entry-title">
          Sweave后传：统计报告中的大规模计算与缓存
         </h1>
         <div class="entry-meta">
          <span class="date">
           <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/" rel="bookmark" title="链向Sweave后传：统计报告中的大规模计算与缓存的固定链接">
            <time class="entry-date" datetime="2011-01-03T11:23:59+00:00">
             2011/01/03
            </time>
           </a>
          </span>
          <span class="categories-links">
           <a href="http://cos.name/category/computing/optim-sim/" rel="category tag">
            优化与模拟
           </a>
           、
           <a href="http://cos.name/category/website/featured/" rel="category tag">
            推荐文章
           </a>
           、
           <a href="http://cos.name/category/software/packages/" rel="category tag">
            统计软件
           </a>
          </span>
          <span class="tags-links">
           <a href="http://cos.name/tag/cachesweave/" rel="tag">
            cacheSweave
           </a>
           、
           <a href="http://cos.name/tag/gibbs%e6%8a%bd%e6%a0%b7/" rel="tag">
            Gibbs抽样
           </a>
           、
           <a href="http://cos.name/tag/lyx/" rel="tag">
            LyX
           </a>
           、
           <a href="http://cos.name/tag/pgf/" rel="tag">
            pgf
           </a>
           、
           <a href="http://cos.name/tag/pgfsweave/" rel="tag">
            pgfSweave
           </a>
           、
           <a href="http://cos.name/tag/r-language/" rel="tag">
            R语言
           </a>
           、
           <a href="http://cos.name/tag/sweave/" rel="tag">
            Sweave
           </a>
           、
           <a href="http://cos.name/tag/tikz/" rel="tag">
            tikz
           </a>
           、
           <a href="http://cos.name/tag/tikzdevice/" rel="tag">
            tikzDevice
           </a>
           、
           <a href="http://cos.name/tag/utf-8%e7%bc%96%e7%a0%81/" rel="tag">
            UTF-8编码
           </a>
           、
           <a href="http://cos.name/tag/%e4%ba%8c%e7%bb%b4%e6%ad%a3%e6%80%81%e5%88%86%e5%b8%83/" rel="tag">
            二维正态分布
           </a>
           、
           <a href="http://cos.name/tag/%e5%8f%af%e9%87%8d%e5%a4%8d%e7%a0%94%e7%a9%b6/" rel="tag">
            可重复研究
           </a>
           、
           <a href="http://cos.name/tag/%e5%af%86%e9%9b%86%e5%9e%8b%e8%ae%a1%e7%ae%97/" rel="tag">
            密集型计算
           </a>
           、
           <a href="http://cos.name/tag/%e7%ad%89%e9%ab%98%e7%ba%bf%e5%9b%be/" rel="tag">
            等高线图
           </a>
           、
           <a href="http://cos.name/tag/%e7%bb%9f%e8%ae%a1%e5%9b%be%e5%bd%a2/" rel="tag">
            统计图形
           </a>
           、
           <a href="http://cos.name/tag/%e7%bb%9f%e8%ae%a1%e8%ae%a1%e7%ae%97/" rel="tag">
            统计计算
           </a>
           、
           <a href="http://cos.name/tag/%e7%bc%93%e5%ad%98/" rel="tag">
            缓存
           </a>
           、
           <a href="http://cos.name/tag/%e9%9a%8f%e6%9c%ba%e6%a8%a1%e6%8b%9f/" rel="tag">
            随机模拟
           </a>
          </span>
          <span class="author vcard">
           <a class="url fn n" href="http://cos.name/author/yihui/" rel="author" title="查看所有由谢益辉发布的文章">
            谢益辉
           </a>
          </span>
         </div>
         <!-- .entry-meta -->
        </header>
        <!-- .entry-header -->
        <div class="entry-content">
         <p>
          学无止境。我曾以为我明白了如何在Sweave中使用缓存加快计算和图形，但后来发现我并没有真的理解，直到读了另外一些手册才明白，因此本文作为前文“
          <a href="http://cos.name/2010/11/reproducible-research-in-statistics/" target="_blank">
           Sweave：打造一个可重复的统计研究流程
          </a>
          ”之续集，向大家介绍一下如何在Sweave的计算和图形中使用缓存，以节省不必要的重复计算和作图，让那些涉及到密集型计算的用户不再对Sweave感到难堪。
         </p>
         <p>
          如果你还没读前文，建议先从那里开始读，了解Sweave与“可重复的统计研究”的意义。简言之，Sweave是一种从代码（R代码和LaTeX）一步生成报告的工具，我们可以把整个统计分析流程融入这个工具，让我们的报告具有可重复性。然而，就普通的Sweave而言，这样做的一个明显问题就是，所有计算和作图都被融入一个文档之后，每次运行这个文档都要重复所有的计算和作图，这在很多情况下纯粹是浪费时间；比如，我只想对新添加的部分内容运行计算，而文档中的旧内容希望保持不变。这都是很合理的需求，我们需要的实际上就是一种缓存机制，将不想重复计算的对象缓存起来，需要它的时候再从缓存库中直接调出来用。
         </p>
         <p>
          Sweave本身做不到缓存（或者很难做到），但由于R语言的扩展性以及一些疯子和天才的存在，我们可以通过R的一些附加包来完成缓存。这里的缓存有两种（不关心细节的读者可以略过）：
         </p>
         <ul>
          <li>
           一种是对R对象的缓存，比如数据、模型（拟合好的模型）和其它计算结果等，这个缓存容易理解，我们可以把它简单想象为把计算过程中的对象存入某些特殊的缓存库（文件），下次计算的时候先查看缓存库中是否存在我们需要的对象，如果存在，那么就直接加载进来，否则就重新计算；如（伪代码）：
           <pre class="brush: r">## 如果存在，就加载
if (file.exists('x.RData')) {
    load('x.RData')
}
## 如果当前工作环境中不存在x，那么就重新创建它
if (!exists('x')) {
    x = rnorm(100000)
}</pre>
           <p>
            R对象的缓存可以通过
            <a href="http://cran.r-project.org/package=cacheSweave" target="_blank">
             cacheSweave包
            </a>
            （作者
            <a href="http://www.biostat.jhsph.edu/~rpeng/" target="_blank">
             Roger D. Peng
            </a>
            ）实现，它真正采用的方法比上面的伪代码当然要高级（比如用代码的MD5值作数据库名等），不过用户可以不必关心这其中的细节。这种“当需要时才加载”的方式在术语上叫“延迟加载”，即Lazy Load，这在R里面也很常见，比如很多R包的数据都是采用延迟加载的方式（加载包的时候并不立刻加载数据，而是用
            <code>
             data(name)
            </code>
            在需要的时候加载）。
           </p>
          </li>
          <li>
           另一种是图形的缓存，这是一个不可思议的魔法。cacheSweave的帮助文档和vignette中特别提到了它只能缓存R对象，无法缓存图形和其它附属输出，而开源世界的魅力就是你总能找到一些奇妙的解决方案。R包pgfSweave借力于pgf实现了图形的缓存。pgfSweave包的两位作者Cameron Bracken和Charlie Sharpsteen都是水文学相关专业出身，却在R的世界里做了这些奇妙的工作，让我觉得有点意外，这是题外话。pgf是LaTeX世界的又一项重大发明，它提供了一套全新的绘图方式（语言），而且它的图形可以通过LaTeX直接生成PDF输出（这是pgfSweave能实现缓存的关键）。关于pgf，我们可以
           <a href="http://www.ctan.org/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf" target="_self" title="pgf手册">
            翻一翻它726页的手册
           </a>
           ，如果你能坚持看上10分钟，感叹超过50次，那么你一定是一位超级排版爱好者。它的图形质量之高、输出之漂亮，真的是让人（至少让我）叹为观止。同样，这里我也不详细介绍细节。pgf图形的“缓存”是通过“外置化”（externalization）来实现的，简言之，pgf图形有一种输出形式如下：
           <pre class="brush: r">\beginpgfgraphicnamed{graph-output-1}
\input{graph-output-1.tikz}
\endpgfgraphicnamed
</pre>
           <p>
            如果LaTeX在运行过程中遇到这样的代码段，那么它会把tikz图形（tikz是高层实现，pgf是基础设施）先编译为PDF图形，等下次重复运行LaTeX的时候，这段代码就不必重新运行了，LaTeX会跳过它直接引入PDF图形。这样就省去了编译tikz图形的时间，同时也能得到高质量的图形输出。
           </p>
           <p>
            pgfSweave从R的层面上可以输出这样的代码段，并生成一个shell脚本来编译图形为PDF；而pgfSweave也会尝试根据R代码的MD5来判断一段画图的代码是否需要重复运行——如果R代码没有变化，那么图形就不必重制。这是自然而然的“缓存”。对了，pgfSweave对Sweave的图形输出作了扩展，新增了tikz输出，这是通过另一个R包tikzDevice实现的（同样两个作者），这个包可以将R图形录制为tikz绘图代码。pgfSweave依赖于cacheSweave包，把它缓存R对象的机制也引入进来，所以我们可以不必管cacheSweave，把精力放在pgfSweave上就可以了。
           </p>
          </li>
         </ul>
         <p>
          介绍完血腥的细节之后，我们就可以坐享高科技的便利了。下面我以一个统计计算中的经典算法“Gibbs抽样”为例来展示pgfSweave在密集型计算中的缓存功能。
         </p>
         <p>
          Gibbs抽样的最终目的是从一个多维分布$f(X_1,X_2,\ldots,X_n)$中生成随机数，而已知的是所有的条件分布$f(X_1|X_2,\ldots,X_n)$、$f(X_2|X_1,\ldots,X_n)$、……、$f(X_n|X_1,\ldots,X_{n-1})$，并且假设我们可以很方便从这些条件分布中抽样。剩下的事情就很简单了：任意给定初始值$x_1^{(0)},x_2^{(0)},\ldots,x_n^{(0)}$，括号中的数字表示迭代次数，接下来依次迭代，随机生成$x_1^{(k)} \sim f(X_1|x_2^{(k-1)},\ldots,X_n^{(k-1)})$、$x_2^{(k)} \sim f(X_2|x_1^{(k)},\ldots,x_n^{(k-1)})$、……、$x_n^{(k)} \sim f(X_n|x_1^{(k)},\ldots,x_{n-1}^{(k)})$（迭代次数$k=1,\cdots,N$），也就是，根据上一次的迭代结果并已知条件分布的情况下，从条件分布中生成下一次的随机数（这个算法很简单，你什么时候看明白上标下标了就明白了）。这是个串行的过程，所以无法避免循环。
         </p>
         <p>
          接下来的计算没有那么复杂，我们仅仅用一个二维正态分布为例。当我们知道一个二维正态分布的分布函数时，我们也知道它的两个边际分布都是一维正态分布，而且分布的表达式也很明确，后文我会详细提到，读者也可以参考维基百科页面。生成一维正态分布的随机数对我们来说当然是小菜一碟——直接用
          <code>
           rnorm()
          </code>
          就可以了。这样，我们只需要交替从$f(X|Y)$和$f(Y|X)$生成随机数，最终我们就能得到服从二维联合分布的随机数（对）。假设我们要从下面的二维正态分布生成随机数：
         </p>
         <p style="text-align: center;">
          $
          <br/>
          \left[\begin{array}{c}X\\ Y\end{array}\right]\sim\mathcal{N}\left(\left[\begin{array}{c}0\\ 1\end{array}\right],\left[\begin{array}{cc} 4 &amp; 4.2\\ 4.2 &amp; 9\end{array}\right]\right)
          <br/>
          $
         </p>
         <p>
          详细过程和结果参见下面这份PDF文档（点击下载）：
         </p>
         <p style="text-align: center;">
          <a href="http://cos.name/wp-content/uploads/2011/01/cache-pgfSweave-demo-Yihui-Xie.pdf">
           A Simple Demo on Caching R Objects and Graphics with pgfSweave (PDF)
          </a>
         </p>
         <p style="text-align: center;">
         </p>
         <figure class="wp-caption aligncenter" id="attachment_2810" style="width: 480px">
          <a href="http://cos.name/wp-content/uploads/2011/01/cache-pgfSweave-demo-Yihui-Xie.pdf">
           <img src="http://cos.name/wp-content/uploads/2011/01/cache-pgfSweave-demo-Yihui-Xie-cache-graph.png"/>
          </a>
          <figcaption class="wp-caption-text">
           二维正态分布随机数及其等高线图
          </figcaption>
         </figure>
         <p>
          我们生成了50万行随机数，并画了X与Y的散点图。由于我们设定了相关系数为0.7，所以图中自然而然显现出正相关；而等高线也体现出多维正态分布的“椭球形”特征。均值在(0, 1)附近，都和理论分布吻合。所以这个Gibbs抽样还不太糟糕。
         </p>
         <p>
          生成上面的PDF文档和图形的LyX/Sweave源文档在这里：
         </p>
         <p style="text-align: center;">
          <a href="http://cos.name/wp-content/uploads/2011/01/cache-pgfSweave-demo-Yihui-Xie.zip">
           A Simple Demo on Caching R Objects and Graphics with pgfSweave (LyX)
          </a>
         </p>
         <p>
          如果你已经按照我
          <a href="http://cos.name/2010/11/reproducible-research-in-statistics/" target="_blank">
           前面的文章
          </a>
          配置好你的工具（
          <strong>
           即使当时配置过，现在也需要重新配置
          </strong>
          ，因为我最近作了重大修改），这个文档应该可以让你重新生成我的结果。文档中有两处关键选项：
         </p>
         <ul>
          <li>
           <code>
            cache=TRUE
           </code>
           使得文档中的R对象可以被缓存；
          </li>
          <li>
           <code>
            external=TRUE
           </code>
           使得图形可以被缓存；
          </li>
         </ul>
         <p>
          第一次运行文档时，也许需要等待一分钟左右的时间，因为R需要长时间的Gibbs抽样计算，并编译生成的图形为PDF，但如果下一次再运行这个文档，则速度会快很多，因为不需要再计算任何东西，只需从缓存加载就可以了。我们前一次的抽样结果已经在缓存库中了。
         </p>
         <p>
          本文至此可以结束，但真正想享用这个结果的读者可能还要继续看几个问题：
         </p>
         <ol>
          <li>
           pgfSweave对图形的缓存经常有点过度，即使你改动了代码，缓存仍然不会被替换，这种情况下你可以把生成的tikz和pdf图形删掉；
          </li>
          <li>
           中文问题：tikzDevice包好像还没有完全解决中文问题，作者正在尝试我提供的中文图形，也许在未来不久的新版本中会有完全的中文支持，但目前实际上我已经在我的自动配置脚本中解决了这个问题。我们只需要保证我们的中文LyX文档用UTF-8编码就可以了——在文档选项中使用CTeX类（以及UTF8选项），并设置语言为中文、编码为Unicode (XeLaTeX) (utf8)。这种设置至少我在Windows和MikTeX下可以成功编译中文Sweave文档。目前高亮代码功能在中文文档中还不能用，但我已经向相关作者发了补丁，等CRAN管理员回来发布新版parser包之后这个问题也会解决。所以，中文用户也不必担心，一切都（将）可以使用。
          </li>
          <li>
           依旧是样式问题：细心的读者也许能发现上面的PDF文档中的图形和这里网页中的图形略有区别，PDF文档中图形的字体和正文字体是一致的，这也是pgf的优势，前文第5节曾提到过。
          </li>
          <li>
           如果使用缓存，那么代码段中的对象都无法打印出来，即使用
           <code>
            print(dat)
           </code>
           也无法打印
           <code>
            dat
           </code>
           ，这是因为缓存的代码段只管是否加载对象，而无法执行进一步的操作（包括打印），对于这种情况，我们应该设计好我们的Sweave文档结构，让某些代码段作计算（并缓存），某些代码段作输出（不要缓存）。
          </li>
         </ol>
         <p>
          这两篇文章都有点长，但最终的操作都极其简单。如果能理解这套工具，我想无论是写作业还是写报告，都将事半功倍（比如我就一直用它写作业）。
         </p>
         <p>
          祝大家在新的一年能写出漂亮、利索的统计文档，告别复制粘贴的体力劳动。
         </p>
         <div class="wumii-hook">
          <br/>
          <br/>
         </div>
        </div>
        <!-- .entry-content -->
        <footer class="entry-meta">
         <div class="author-info">
          <div class="author-avatar">
           <img src="http://sdn.geekzu.org/avatar/1022d8e6ebc94e8f6bca9a86cebe312a?s=74&amp;d=monsterid&amp;r=g"/>
          </div>
          <!-- .author-avatar -->
          <div class="author-description">
           <h2 class="author-title">
            关于谢益辉
           </h2>
           <p class="author-bio">
            RStudio码了个工，Iowa State University统计系博了个士。统计之都网站创办者；研究兴趣为统计图形及数据可视化，对统计模型方法的发展感兴趣但不喜欢纯粹抽象的数学理论，以直观、实用为学习标准；偏好以R语言为工具；Email：xie@yihui.name；个人主页：
            <a href="http://yihui.name">
             http://yihui.name
            </a>
            <a class="author-link" href="http://cos.name/author/yihui/" rel="author">
             查看所有由谢益辉发表的文章
             <span class="meta-nav">
              →
             </span>
            </a>
           </p>
          </div>
          <!-- .author-description -->
         </div>
         <!-- .author-info -->
        </footer>
        <!-- .entry-meta -->
       </article>
       <!-- #post -->
       <nav class="navigation post-navigation" role="navigation">
        <h1 class="screen-reader-text">
         文章导航
        </h1>
        <div class="nav-links">
         <a href="http://cos.name/2010/12/think-sas-2/" rel="prev">
          <span class="meta-nav">
           ←
          </span>
          Think SAS(二)
         </a>
         <a href="http://cos.name/2011/01/the-application-of-r-in-actual-science-with-case-study/" rel="next">
          R软件在精算教学中的应用案例
          <span class="meta-nav">
           →
          </span>
         </a>
        </div>
        <!-- .nav-links -->
       </nav>
       <!-- .navigation -->
       <div class="comments-area" id="comments">
        <h2 class="comments-title">
         《
         <span>
          Sweave后传：统计报告中的大规模计算与缓存
         </span>
         》有17个想法
        </h2>
        <ol class="comment-list">
         <li class="comment even thread-even depth-1 parent" id="comment-1820">
          <article class="comment-body" id="div-comment-1820">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/66aa115466aeedf71937ff80c00b7982?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              <a class="url" href="http://www.road2stat.com/" rel="external nofollow">
               Xiao Nan
              </a>
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-1820">
              <time datetime="2011-01-03T14:19:20+00:00">
               2011/01/03 14:19
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             新年第一篇, sf ..
             <br/>
             话说pgf那个文档开始看觉得很精致 后来看又觉得很花哨 每次去看一下都有不同感受.
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给Xiao Nan" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=1820#respond" onclick='return addComment.moveForm( "div-comment-1820", "1820", "respond", "2792" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
          <ol class="children">
           <li class="comment byuser comment-author-yihui bypostauthor odd alt depth-2" id="comment-1821">
            <article class="comment-body" id="div-comment-1821">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/1022d8e6ebc94e8f6bca9a86cebe312a?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                <a class="url" href="http://yihui.name" rel="external nofollow">
                 谢益辉
                </a>
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-1821">
                <time datetime="2011-01-03T14:29:24+00:00">
                 2011/01/03 14:29
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               其实我也不关心它到底有多少牛哄哄的功能，我要用的只有两点：缓存和字体一致性。统计图形和pgf手册中的图完全是两种风格，不过我今天倒是发现它有那种三角图形（三维变量分别在三个角上，$13.2.2 Barycentric Systems），有点儿意思。
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给谢益辉" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=1821#respond" onclick='return addComment.moveForm( "div-comment-1821", "1821", "respond", "2792" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
           </li>
           <!-- #comment-## -->
          </ol>
          <!-- .children -->
         </li>
         <!-- #comment-## -->
         <li class="comment even thread-odd thread-alt depth-1 parent" id="comment-1824">
          <article class="comment-body" id="div-comment-1824">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/66aa115466aeedf71937ff80c00b7982?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              <a class="url" href="http://www.road2stat.com/" rel="external nofollow">
               Xiao Nan
              </a>
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-1824">
              <time datetime="2011-01-03T21:04:22+00:00">
               2011/01/03 21:04
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             咦 你的demo怎么嵌入的是点阵字体
             <br/>
             一直有个疑惑, 图形中的字体到底应该用serif还是用sans-serif? pgf默认serif, 而R和Python的matplotlib默认sans-serif.
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给Xiao Nan" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=1824#respond" onclick='return addComment.moveForm( "div-comment-1824", "1824", "respond", "2792" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
          <ol class="children">
           <li class="comment byuser comment-author-yihui bypostauthor odd alt depth-2" id="comment-1826">
            <article class="comment-body" id="div-comment-1826">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/1022d8e6ebc94e8f6bca9a86cebe312a?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                <a class="url" href="http://yihui.name" rel="external nofollow">
                 谢益辉
                </a>
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-1826">
                <time datetime="2011-01-04T02:48:57+00:00">
                 2011/01/04 02:48
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               这个没有一定之规。而且对pgf/tikz图形来说，图形字体会随着正文字体变化（并非默认serif，而是因为文档用了serif，所以它也是serif）。
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给谢益辉" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=1826#respond" onclick='return addComment.moveForm( "div-comment-1826", "1826", "respond", "2792" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
           </li>
           <!-- #comment-## -->
          </ol>
          <!-- .children -->
         </li>
         <!-- #comment-## -->
         <li class="comment even thread-even depth-1" id="comment-1825">
          <article class="comment-body" id="div-comment-1825">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/5b8cd887d46c3894e895fbea7a46a3bf?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              W.C Zhu
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-1825">
              <time datetime="2011-01-03T21:20:31+00:00">
               2011/01/03 21:20
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             强顶！诗云：众里寻她千百度，得来全不费功夫：）
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给W.C Zhu" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=1825#respond" onclick='return addComment.moveForm( "div-comment-1825", "1825", "respond", "2792" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-odd thread-alt depth-1 parent" id="comment-2082">
          <article class="comment-body" id="div-comment-2082">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/a4ea427452f31cbd095bea92c436967a?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              Cecil Liu
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2082">
              <time datetime="2011-05-12T07:41:30+00:00">
               2011/05/12 07:41
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             请问该怎么在Sweave上画一个正态分布表和正态分布图呢?
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给Cecil Liu" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=2082#respond" onclick='return addComment.moveForm( "div-comment-2082", "2082", "respond", "2792" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
          <ol class="children">
           <li class="comment byuser comment-author-yihui bypostauthor even depth-2 parent" id="comment-2084">
            <article class="comment-body" id="div-comment-2084">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/1022d8e6ebc94e8f6bca9a86cebe312a?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                <a class="url" href="http://yihui.name" rel="external nofollow">
                 谢益辉
                </a>
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2084">
                <time datetime="2011-05-12T11:37:42+00:00">
                 2011/05/12 11:37
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               这个问题与Sweave无关。我也不知道你说的正态分布图是什么图，不妨说具体一点。关于正态分布表，我不知道它除了在考场上查一下P值还有什么用。
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给谢益辉" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=2084#respond" onclick='return addComment.moveForm( "div-comment-2084", "2084", "respond", "2792" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
            <ol class="children">
             <li class="comment odd alt depth-3" id="comment-2098">
              <article class="comment-body" id="div-comment-2098">
               <footer class="comment-meta">
                <div class="comment-author vcard">
                 <img src="http://sdn.geekzu.org/avatar/a4ea427452f31cbd095bea92c436967a?s=74&amp;d=monsterid&amp;r=g"/>
                 <b class="fn">
                  Cecil Liu
                 </b>
                 <span class="says">
                  说道：
                 </span>
                </div>
                <!-- .comment-author -->
                <div class="comment-metadata">
                 <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2098">
                  <time datetime="2011-05-13T06:59:11+00:00">
                   2011/05/13 06:59
                  </time>
                 </a>
                </div>
                <!-- .comment-metadata -->
               </footer>
               <!-- .comment-meta -->
               <div class="comment-content">
                <p>
                 我需要写一个Sweave文件，上面需要有正态分布表和正态分布图，我该怎么写这个程序呢？
                </p>
               </div>
               <!-- .comment-content -->
              </article>
              <!-- .comment-body -->
             </li>
             <!-- #comment-## -->
             <li class="comment byuser comment-author-yihui bypostauthor even depth-3" id="comment-2100">
              <article class="comment-body" id="div-comment-2100">
               <footer class="comment-meta">
                <div class="comment-author vcard">
                 <img src="http://sdn.geekzu.org/avatar/1022d8e6ebc94e8f6bca9a86cebe312a?s=74&amp;d=monsterid&amp;r=g"/>
                 <b class="fn">
                  <a class="url" href="http://yihui.name" rel="external nofollow">
                   谢益辉
                  </a>
                 </b>
                 <span class="says">
                  说道：
                 </span>
                </div>
                <!-- .comment-author -->
                <div class="comment-metadata">
                 <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2100">
                  <time datetime="2011-05-13T07:13:14+00:00">
                   2011/05/13 07:13
                  </time>
                 </a>
                </div>
                <!-- .comment-metadata -->
               </footer>
               <!-- .comment-meta -->
               <div class="comment-content">
                <p>
                 惜字如金。我问你什么是正态分布图，你回答正态分布图。密度曲线？累计分布曲线？直方图？
                </p>
               </div>
               <!-- .comment-content -->
              </article>
              <!-- .comment-body -->
             </li>
             <!-- #comment-## -->
            </ol>
            <!-- .children -->
           </li>
           <!-- #comment-## -->
          </ol>
          <!-- .children -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-even depth-1 parent" id="comment-2099">
          <article class="comment-body" id="div-comment-2099">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/a4ea427452f31cbd095bea92c436967a?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              Cecil Liu
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2099">
              <time datetime="2011-05-13T07:01:17+00:00">
               2011/05/13 07:01
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             也就是说，我需要在R程序里编写一个分布表吗？然后再用R程序画出一个图来。
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给Cecil Liu" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=2099#respond" onclick='return addComment.moveForm( "div-comment-2099", "2099", "respond", "2792" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
          <ol class="children">
           <li class="comment even depth-2" id="comment-2101">
            <article class="comment-body" id="div-comment-2101">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/a4ea427452f31cbd095bea92c436967a?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                Cecil Liu
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2101">
                <time datetime="2011-05-13T07:28:52+00:00">
                 2011/05/13 07:28
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               对不起，
               <br/>
               我指的是 normal distribution，
               <br/>
               就是像这个网页里的一样：
               <a href="http://www.mathsisfun.com/data/standard-normal-distribution-table.html" rel="nofollow">
                http://www.mathsisfun.com/data/standard-normal-distribution-table.html
               </a>
               <br/>
               我该怎么在Sweave上写出来？
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给Cecil Liu" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=2101#respond" onclick='return addComment.moveForm( "div-comment-2101", "2101", "respond", "2792" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
           </li>
           <!-- #comment-## -->
          </ol>
          <!-- .children -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-odd thread-alt depth-1 parent" id="comment-2416">
          <article class="comment-body" id="div-comment-2416">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/2d274495baf267f4ea2cb220cf26c0c6?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              海之魄
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2416">
              <time datetime="2011-09-08T14:05:06+00:00">
               2011/09/08 14:05
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             谢老大， 我最近试着用R Sweave， 但是好像R的输出有乱码。有何方法解决阿？
             <br/>
             比如 fit1&lt;-lm(y~x1+x2 , data =test)
             <br/>
             summary(fit1) 输出的
            </p>
            <p>
             最后一行的
             <br/>
             Sigf '***'
             <br/>
             的 ' 就变成了乱码。
             <br/>
             、
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给海之魄" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=2416#respond" onclick='return addComment.moveForm( "div-comment-2416", "2416", "respond", "2792" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
          <ol class="children">
           <li class="comment byuser comment-author-yihui bypostauthor even depth-2" id="comment-2419">
            <article class="comment-body" id="div-comment-2419">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/1022d8e6ebc94e8f6bca9a86cebe312a?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                <a class="url" href="http://yihui.name" rel="external nofollow">
                 谢益辉
                </a>
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2419">
                <time datetime="2011-09-09T11:01:38+00:00">
                 2011/09/09 11:01
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               这是由于默认情况下R打印lm的结果用的是多字节的引号，你可以在文档开头设置options(useFancyQuotes = FALSE)强迫R使用单字节的引号就好了。
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给谢益辉" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=2419#respond" onclick='return addComment.moveForm( "div-comment-2419", "2419", "respond", "2792" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
           </li>
           <!-- #comment-## -->
          </ol>
          <!-- .children -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-even depth-1 parent" id="comment-2469">
          <article class="comment-body" id="div-comment-2469">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/86cd9dc39bcfec79a971c853179695e8?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              adu
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2469">
              <time datetime="2011-09-27T01:13:24+00:00">
               2011/09/27 01:13
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             Sweave生成的图片如何引用呢？也就是说怎么使用\label标签？
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给adu" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=2469#respond" onclick='return addComment.moveForm( "div-comment-2469", "2469", "respond", "2792" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
          <ol class="children">
           <li class="comment byuser comment-author-yihui bypostauthor even depth-2 parent" id="comment-2470">
            <article class="comment-body" id="div-comment-2470">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/1022d8e6ebc94e8f6bca9a86cebe312a?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                <a class="url" href="http://yihui.name" rel="external nofollow">
                 谢益辉
                </a>
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2470">
                <time datetime="2011-09-27T01:27:51+00:00">
                 2011/09/27 01:27
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               Sweave只管生成图片并以\includegraphics{}的形式写入LaTeX，至于\label{}什么的是作者自己的事情，与Sweave无关，你可以手工写入。
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给谢益辉" class="comment-reply-link" href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/?replytocom=2470#respond" onclick='return addComment.moveForm( "div-comment-2470", "2470", "respond", "2792" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
            <ol class="children">
             <li class="comment odd alt depth-3" id="comment-2471">
              <article class="comment-body" id="div-comment-2471">
               <footer class="comment-meta">
                <div class="comment-author vcard">
                 <img src="http://sdn.geekzu.org/avatar/86cd9dc39bcfec79a971c853179695e8?s=74&amp;d=monsterid&amp;r=g"/>
                 <b class="fn">
                  adu
                 </b>
                 <span class="says">
                  说道：
                 </span>
                </div>
                <!-- .comment-author -->
                <div class="comment-metadata">
                 <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2471">
                  <time datetime="2011-09-27T01:45:21+00:00">
                   2011/09/27 01:45
                  </time>
                 </a>
                </div>
                <!-- .comment-metadata -->
               </footer>
               <!-- .comment-meta -->
               <div class="comment-content">
                <p>
                 我整明白了，我猜测到是这样，但是我的WinEdt里面的Sweave命令不会事先保存一下文档，这样导致我添加的\label命令不起作用。我自己保存一下文档在运行Sweave就木有问题了。
                </p>
               </div>
               <!-- .comment-content -->
              </article>
              <!-- .comment-body -->
             </li>
             <!-- #comment-## -->
             <li class="comment byuser comment-author-yihui bypostauthor even depth-3" id="comment-2472">
              <article class="comment-body" id="div-comment-2472">
               <footer class="comment-meta">
                <div class="comment-author vcard">
                 <img src="http://sdn.geekzu.org/avatar/1022d8e6ebc94e8f6bca9a86cebe312a?s=74&amp;d=monsterid&amp;r=g"/>
                 <b class="fn">
                  <a class="url" href="http://yihui.name" rel="external nofollow">
                   谢益辉
                  </a>
                 </b>
                 <span class="says">
                  说道：
                 </span>
                </div>
                <!-- .comment-author -->
                <div class="comment-metadata">
                 <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#comment-2472">
                  <time datetime="2011-09-27T10:14:11+00:00">
                   2011/09/27 10:14
                  </time>
                 </a>
                </div>
                <!-- .comment-metadata -->
               </footer>
               <!-- .comment-meta -->
               <div class="comment-content">
                <p>
                 晕死，你这不是给party和人民找麻烦吗
                </p>
               </div>
               <!-- .comment-content -->
              </article>
              <!-- .comment-body -->
             </li>
             <!-- #comment-## -->
            </ol>
            <!-- .children -->
           </li>
           <!-- #comment-## -->
          </ol>
          <!-- .children -->
         </li>
         <!-- #comment-## -->
        </ol>
        <!-- .comment-list -->
        <div class="comment-respond" id="respond">
         <h3 class="comment-reply-title" id="reply-title">
          发表评论
          <small>
           <a href="http://cos.name/2011/01/cache-objects-in-sweave-stat-computation-and-graphics/#respond" id="cancel-comment-reply-link" rel="nofollow" style="display:none;">
            取消回复
           </a>
          </small>
         </h3>
         <form action="http://cos.name/wp-comments-post.php" class="comment-form" id="commentform" method="post" novalidate="">
          <p class="comment-notes">
           <span id="email-notes">
            电子邮件地址不会被公开。
           </span>
           必填项已用
           <span class="required">
            *
           </span>
           标注
          </p>
          <p class="comment-form-comment">
           <label for="comment">
            评论
           </label>
           <textarea aria-required="true" cols="45" id="comment" maxlength="65525" name="comment" required="required" rows="8">
           </textarea>
          </p>
          <p class="comment-form-author">
           <label for="author">
            姓名
            <span class="required">
             *
            </span>
           </label>
          </p>
          <p class="comment-form-email">
           <label for="email">
            电子邮件
            <span class="required">
             *
            </span>
           </label>
          </p>
          <p class="comment-form-url">
           <label for="url">
            站点
           </label>
          </p>
          <p class="form-submit">
          </p>
          <p style="display: none;">
          </p>
          <p style="display: none;">
          </p>
         </form>
        </div>
        <!-- #respond -->
       </div>
       <!-- #comments -->
      </div>
      <!-- #content -->
     </div>
     <!-- #primary -->
     <div class="sidebar-container" id="tertiary" role="complementary">
      <div class="sidebar-inner">
       <div class="widget-area">
        <aside class="widget widget_text" id="text-3">
         <h3 class="widget-title">
          关注统计之都
         </h3>
         <div class="textwidget">
          <ul>
           <li>
            新浪微博
            <a href="http://weibo.com/cosname">
             @统计之都
            </a>
           </li>
           <li>
            人人网
            <a href="http://renren.com/cosname">
             @统计之都
            </a>
           </li>
           <li>
            Twitter
            <a href="http://twitter.com/cos_name">
             @cos_name
            </a>
           </li>
          </ul>
         </div>
        </aside>
        <aside class="widget widget_text" id="text-6">
         <h3 class="widget-title">
          微信公众平台
         </h3>
         <div class="textwidget">
          <img src="http://cos.name/wp-content/uploads/2013/04/qrcode-8cm.jpg"/>
          <p style="font-size:12px;margin-left:15px">
           微信号 CapStat
          </p>
          <p>
           我们将第一时间向您推送主站和论坛的精彩内容，以及统计之都的线下活动、竞赛、培训和会议信息。
          </p>
         </div>
        </aside>
        <aside class="widget widget_text" id="text-8">
         <h3 class="widget-title">
          站内导航
         </h3>
         <div class="textwidget">
          <ul>
           <li class="page_item">
            <a href="http://cos.name/cn/">
             中文论坛
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/videos/">
             视频
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/salon/">
             统计沙龙
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/books/">
             图书出版
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/training/">
             教育培训
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/about/">
             关于我们
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/donate/">
             捐赠
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/chinar/">
             R语言会议
            </a>
           </li>
          </ul>
         </div>
        </aside>
        <aside class="widget widget_links" id="linkcat-2">
         <h3 class="widget-title">
          友情链接
         </h3>
         <ul class="xoxo blogroll">
          <li>
           <a href="http://stat.ruc.edu.cn" target="_blank" title="中国人民大学统计学院网站">
            中国人民大学统计学院
           </a>
          </li>
          <li>
           <a href="http://rucdmc.net">
            中国人民大学数据挖掘中心
           </a>
          </li>
          <li>
           <a href="http://birc.gsm.pku.edu.cn/" target="_blank">
            北京大学商务智能研究中心
           </a>
          </li>
          <li>
           <a href="http://sam.cufe.edu.cn/" target="_blank" title="中央财经大学统计与数学学院网站">
            中央财经大学统计与数学学院
           </a>
          </li>
          <li>
           <a href="http://tjx.cueb.edu.cn/" target="_blank" title="首都经济贸易大学统计学院网站">
            首经贸统计学院
           </a>
          </li>
          <li>
           <a href="http://www.shookr.com/">
            数客网大数据社区
           </a>
          </li>
          <li>
           <a href="http://www.xueqing.tv/" target="_blank" title="数据科学在线学习平台">
            雪晴数据网
           </a>
          </li>
          <li>
           <a href="http://iera.name/" target="_blank" title="IERA是一个旨在普及、传播和增进工业工程知识的非营利性网站">
            IERA（直通IE）
           </a>
          </li>
         </ul>
        </aside>
        <aside class="widget widget_categories" id="categories-2">
         <h3 class="widget-title">
          全部分类
         </h3>
         <label class="screen-reader-text" for="cat">
          全部分类
         </label>
         <select class="postform" id="cat" name="cat">
          <option value="-1">
           选择分类目录
          </option>
          <option class="level-0" value="925">
           cos访谈  (4)
          </option>
          <option class="level-0" value="659">
           图书出版  (5)
          </option>
          <option class="level-0" value="379">
           数学方法  (14)
          </option>
          <option class="level-1" value="381">
           分析与代数  (1)
          </option>
          <option class="level-1" value="380">
           概率论  (9)
          </option>
          <option class="level-1" value="382">
           随机过程  (5)
          </option>
          <option class="level-0" value="210">
           数据分析  (81)
          </option>
          <option class="level-1" value="203">
           多元统计  (3)
          </option>
          <option class="level-1" value="42">
           数据挖掘与机器学习  (42)
          </option>
          <option class="level-1" value="36">
           生物与医学统计  (17)
          </option>
          <option class="level-1" value="35">
           计量经济学  (4)
          </option>
          <option class="level-1" value="296">
           金融统计  (3)
          </option>
          <option class="level-1" value="303">
           风险精算  (7)
          </option>
          <option class="level-0" value="177">
           模型专题  (15)
          </option>
          <option class="level-1" value="38">
           回归分析  (10)
          </option>
          <option class="level-1" value="41">
           时间序列  (2)
          </option>
          <option class="level-0" value="784">
           每周精选  (24)
          </option>
          <option class="level-1" value="183">
           可视化  (9)
          </option>
          <option class="level-0" value="967">
           沙龙纪要  (3)
          </option>
          <option class="level-0" value="18">
           经典理论  (46)
          </option>
          <option class="level-1" value="37">
           抽样调查  (3)
          </option>
          <option class="level-1" value="4">
           统计推断  (26)
          </option>
          <option class="level-1" value="236">
           试验设计  (7)
          </option>
          <option class="level-1" value="39">
           非参数统计  (3)
          </option>
          <option class="level-0" value="1">
           统计之都  (279)
          </option>
          <option class="level-1" value="884">
           中国R会议  (2)
          </option>
          <option class="level-1" value="885">
           中国R语言会议  (5)
          </option>
          <option class="level-1" value="446">
           出国留学  (3)
          </option>
          <option class="level-1" value="179">
           推荐文章  (90)
          </option>
          <option class="level-1" value="3">
           新闻通知  (75)
          </option>
          <option class="level-1" value="263">
           统计刊物  (10)
          </option>
          <option class="level-1" value="174">
           网站导读  (40)
          </option>
          <option class="level-1" value="204">
           职业事业  (51)
          </option>
          <option class="level-1" value="213">
           高校课堂  (9)
          </option>
          <option class="level-0" value="178">
           统计计算  (28)
          </option>
          <option class="level-1" value="40">
           优化与模拟  (15)
          </option>
          <option class="level-1" value="43">
           贝叶斯方法  (6)
          </option>
          <option class="level-0" value="378">
           软件应用  (116)
          </option>
          <option class="level-1" value="44">
           统计图形  (36)
          </option>
          <option class="level-1" value="110">
           统计软件  (83)
          </option>
         </select>
        </aside>
        <aside class="widget widget_recent_comments" id="recent-comments-2">
         <h3 class="widget-title">
          最新评论
         </h3>
         <ul id="recentcomments">
          <li class="recentcomments">
           <span class="comment-author-link">
            fineboom
           </span>
           发表在《
           <a href="http://cos.name/2016/06/use-shiny-fleetly-set-up-visual-prototype-system/#comment-7317">
            利用shiny包快速搭建可视化原型系统
           </a>
           》
          </li>
          <li class="recentcomments">
           <span class="comment-author-link">
            胡家新
           </span>
           发表在《
           <a href="http://cos.name/2016/06/r%e8%af%ad%e5%8d%83%e5%af%bb%e7%ac%ac%e4%b8%89%e6%9c%9f%ef%bc%9a%e5%bc%a0%e6%97%a0%e5%bf%8c%e7%a9%b6%e7%ab%9f%e7%88%b1%e8%b0%81%ef%bc%9f/#comment-7316">
            R语千寻第三期：张无忌究竟爱谁？
           </a>
           》
          </li>
          <li class="recentcomments">
           <span class="comment-author-link">
            <a class="url" href="http://www.zijiacha.com/category.php?id=6" rel="external nofollow">
             南糯山普洱茶
            </a>
           </span>
           发表在《
           <a href="http://cos.name/2016/06/r%e8%af%ad%e5%8d%83%e5%af%bb%e7%ac%ac%e4%b8%89%e6%9c%9f%ef%bc%9a%e5%bc%a0%e6%97%a0%e5%bf%8c%e7%a9%b6%e7%ab%9f%e7%88%b1%e8%b0%81%ef%bc%9f/#comment-7315">
            R语千寻第三期：张无忌究竟爱谁？
           </a>
           》
          </li>
          <li class="recentcomments">
           <span class="comment-author-link">
            J
           </span>
           发表在《
           <a href="http://cos.name/2016/05/value-of-the-reputation-from-the-data/#comment-7314">
            数据告诉你：高信誉的卖家应该收高价，还是收低价？
           </a>
           》
          </li>
          <li class="recentcomments">
           <span class="comment-author-link">
            <a class="url" href="http://gg" rel="external nofollow">
             Hilda
            </a>
           </span>
           发表在《
           <a href="http://cos.name/2013/01/drawing-map-in-r-era/#comment-7311">
            R时代，你要怎样画地图？
           </a>
           》
          </li>
         </ul>
        </aside>
        <aside class="widget widget_rss" id="rss-282869971">
         <h3 class="widget-title">
          <a class="rsswidget" href="http://cos.name/cn/topics/feed/">
           <img src="http://cos.name/wp-includes/images/rss.png"/>
          </a>
          <a class="rsswidget" href="http://cos.name/cn/topics/feed/">
           中文论坛新帖
          </a>
         </h3>
         <ul>
          <li>
           <a class="rsswidget" href="http://cos.name/cn/topic/417372/">
            处理时间数据和产生时间序列的问题
           </a>
          </li>
          <li>
           <a class="rsswidget" href="http://cos.name/cn/topic/6790/">
            《统计陷阱》下载 （How to lie with statistics）
           </a>
          </li>
          <li>
           <a class="rsswidget" href="http://cos.name/cn/topic/818/">
            统计学的世界（第五版）
           </a>
          </li>
          <li>
           <a class="rsswidget" href="http://cos.name/cn/topic/16574/">
            class(x) 返回值值是AsIs,AsIs代表什么，有什么用处？
           </a>
          </li>
          <li>
           <a class="rsswidget" href="http://cos.name/cn/topic/417366/">
            如何用R绘制一个分类算法的决策规则
           </a>
          </li>
         </ul>
        </aside>
        <aside class="widget widget_text" id="text-2">
         <h3 class="widget-title">
          登录/RSS
         </h3>
         <div class="textwidget">
          <ul>
           <li>
            <a href="http://cos.name/wp-admin/">
             登录
            </a>
           </li>
           <li>
            <a href="http://cos.name/feed/" title="使用 RSS 2.0 同步站点内容">
             文章
             <abbr title="Really Simple Syndication">
              RSS
             </abbr>
            </a>
           </li>
           <li>
            <a href="http://cos.name/comments/feed/" title="RSS 上的最近评论">
             评论
             <abbr title="Really Simple Syndication">
              RSS
             </abbr>
            </a>
           </li>
          </ul>
         </div>
        </aside>
       </div>
       <!-- .widget-area -->
      </div>
      <!-- .sidebar-inner -->
     </div>
     <!-- #tertiary -->
    </div>
    <!-- #main -->
    <footer class="site-footer" id="colophon" role="contentinfo">
     <div class="site-info">
      版权所有 © 2014 统计之都 | 由
      <a href="http://wordpress.org/">
       WordPress
      </a>
      构建 | 主题修改自
      <a href="http://wordpress.org/themes/twentythirteen">
       Twenty Thirteen
      </a>
     </div>
     <!-- .site-info -->
    </footer>
    <!-- #colophon -->
   </div>
   <!-- #page -->
   <p style="margin:0;padding:0;height:1px;overflow:hidden;">
    <a href="http://www.wumii.com/widget/relatedItems" style="border:0;">
     <img src="http://static.wumii.cn/images/pixel.png"/>
    </a>
   </p>
  </div>
 </body>
</html>